package com.itao.rocketmq5.quickstart;

import com.itao.rocketmq5.util.RocketMqFactory;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.apis.ClientException;

/**
 * @Author sjt
 * @CreateTime 2023/10/09 14:54
 */
@Slf4j
public class ProducerExample {

    public static void main(String[] args) throws ClientException {

        // 消息发送的目标Topic名称，需要提前创建。
        var topic = "TestTopic";
        var producer = RocketMqFactory.getProducer(topic);
        // 普通消息发送。
        var message = RocketMqFactory.provider().newMessageBuilder()
                .setTopic(topic)
                // 设置消息索引键，可根据关键字精确查找某条消息。
                .setKeys("messageKey")
                // 设置消息Tag，用于消费端根据指定Tag过滤消息。
                .setTag("messageTag")
                // 消息体。
                .setBody("messageBody".getBytes())
                .build();
        try {
            // 发送消息，需要关注发送结果，并捕获失败等异常。
            var sendReceipt = producer.send(message);
            log.info("SendReceipt:{}", sendReceipt);
        } catch (ClientException e) {
            log.error("异常：", e);
        }
        // producer.close();
    }
}
